Contemporary computer graphics devices are widely used to display images of objects based on computer supplied data that represent these objects. In such devices, the screen is subdivided into a large number of pixels, where each pixel can be associated with an (x,y) coordinate pair of an xy-plane corresponding to the screen. In order to draw objects that shadow each other (i.e., a situation in which one object appears in front of and therefore blocks the view of part of another object), a z-axis is also defined, pointing into the plane of the screen. Each pixel is associated with a z-value that indicates the depth of the object to be drawn at that pixel location. The z-value for each pixel, represented for example by a 24 bit binary number, is stored in a z-buffer memory location. Hence, associated with each pixel are two quantities: the color, which may be gray-scale intensity in the case of monochromatic images, and the depth, or z-value, of the object to be drawn at that pixel location.
Typically, the displayed image evolves, or changes with time, either with the entire image being replaced by another image so that a sequence of images is displayed or with only certain pixels changing. As an example, suppose that an object is to be added to an existing image, where parts of this new object are to be drawn such that they appear behind other existing objects. Each of the pixel locations corresponding to the portion of the screen spanned by the new object undergoes the following: First, the z-value which corresponds to the image existing on the screen (i.e., the old z-value) is read from the z-buffer memory. This old z-value is then compared with the z-value corresponding to the object to be drawn (i.e., the new z-value). If the new z-value is less than the old z-value, so that the object to be drawn is in front of the existing image at the pixel location in question, then the new z-value is written to the z-buffer memory, thereby replacing the old z-value. In addition, the new color value is drawn on the screen at that pixel location. If, on the other hand, the new z-value is greater than the old z-value, so that the new object is behind the existing image at that pixel location, then the old z-value remains in memory and the new z-value is discarded. The new color value is not drawn on the screen. Finally, if the two z-values are equal, then the new color value may or may not be drawn on the screen depending on some predetermined convention. Hence, in general a three-step process is carried out in updating a pixel location: reading the z-buffer memory, comparing the old and new z-values, and possibly writing the new value to the memory.
Naturally, in graphics applications the desired effect is achieved only if the updating operation is carried out at high speed. Defining the bandwidth of a memory device as the number of bits per unit time that can be processed by the memory, it is desirable to have as high a bandwidth as possible.